//using System.Xml.Linq;
//using System.Linq;
using System.ComponentModel;
//using clsVariables;
using Infragistics.Win;

	#region  Imports
	#endregion
	//'
	public class Ctrl_UltraComboEditor : Infragistics.Win.UltraWinEditors.UltraComboEditor, InterfazControles
	{
		
		//'
		#region Variables
		//'
		#region                                                                TipoDatos
		private clsVariables.e_TipoOrigen p_TipoDatos;
		[Category(clsVariables.str_NombreAplicacion), Description("Si los datos salen de cliente o de sistema")]public clsVariables.e_TipoOrigen TipoDatos
			{
			get
			{
				return p_TipoDatos;
			}
			set
			{
				p_TipoDatos = value;
			}
		}
		#endregion
		//'
		#region                                                                ComboOrigenDatos
		private string p_ComboOrigenDatos;
		[Category(clsVariables.str_NombreAplicacion), Description("Tabla o vista de donde extrae los datos")]public string ComboOrigenDatos
			{
			get
			{
				return p_ComboOrigenDatos;
			}
			set
			{
				p_ComboOrigenDatos = value;
			}
		}
		#endregion
		//'
		#region                                                                ComboDisplay
		private string p_ComboDisplay;
		[Category(clsVariables.str_NombreAplicacion), Description("Lo que muestra en el combo. Para varios campos usar vista")]public string ComboDisplay
			{
			get
			{
				return p_ComboDisplay;
			}
			set
			{
				p_ComboDisplay = value;
			}
		}
		#endregion
		//'
		#region                                                                ComboValue
		private string p_ComboValue;
		[Category(clsVariables.str_NombreAplicacion), Description("El valor que almacena en el combo")]public string ComboValue
			{
			get
			{
				return p_ComboValue;
			}
			set
			{
				p_ComboValue = value;
			}
		}
		#endregion
		//'
		#region                                                                ComboFiltro
		private string p_ComboFiltro;
		[Category(clsVariables.str_NombreAplicacion), Description("Filtro que se le aplica al resultado del combo después de obtener")]public string ComboFiltro
			{
			get
			{
				return p_ComboFiltro;
			}
			set
			{
				p_ComboFiltro = value;
			}
		}
		#endregion
		//'
		#region                                                                TipoOrden
		[Category(clsVariables.str_NombreAplicacion), Description("Orden ascendente o descendente ")]public ValueListSortStyle TipoOrden
			{
			get
			{
				return SortStyle;
			}
			set
			{
				SortStyle = value;
			}
		}
		#endregion
		//'
		#region                                                                ComboValueDefecto
		private int p_ComboValueDefecto = - 1;
		[Category(clsVariables.str_NombreAplicacion), Description("Value por defecto al cargar el combo")]public int ComboValueDefecto
			{
			get
			{
				return p_ComboValueDefecto;
			}
			set
			{
				p_ComboValueDefecto = value;
			}
		}
		#endregion
		//'
		#endregion
		//'
		public void RecargarDatos()
		{
			//Dim Args() As String = ComboDisplay.Split("+")
			//Dim strDisplay As String
			// ''
			//For Each Str As String In Args
			//   If clsVariables.e_ProviderNombreAplicacion = eProviderNombre.MySqlClient Then
			//      strDisplay = ComboDisplay
			//   Else
			//      strDisplay =
			//   End If
			//Next
			DisplayMember = ComboDisplay;
			ValueMember = ComboValue;
			DataSource = clsBBDD.DtObtener("SELECT * FROM " + ComboOrigenDatos, p_TipoDatos, false);
			if (ComboValueDefecto != - 1)
			{
				Value = ComboValueDefecto;
			}
		}
		//'
		public Ctrl_UltraComboEditor()
		{
			SortStyle = Infragistics.Win.ValueListSortStyle.Ascending;
			AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend;
			Text = string.Empty;
			LimitToList = true;
		}
		//'
		#region  bol_Independiente
		private bool p_bol_Independiente = false;
		/// <summary>
		/// Indica si el control es independiente o obtiene/graba su valor en la bbdd
		/// </summary>
		/// <value></value>
		/// <returns></returns>
		/// <remarks></remarks>
		[Category(clsVariables.str_NombreAplicacion), Description("Indica si el control es independiente o obtiene/graba su valor en la bbdd")]public bool bol_Independiente
		{
			get
			{
				return p_bol_Independiente;
			}
			set
			{
				p_bol_Independiente = value;
			}
		}
		#endregion
		//'
		//'
		#region                                                                TipoCampo
		private eTipoCampo p_TipoCampo = eTipoCampo.Editable;
		[Category(clsVariables.str_NombreAplicacion), Description("Indica si el control es clave, elazado o editable")]public eTipoCampo TipoCampo
		{
			get
			{
				return p_TipoCampo;
			}
			set
			{
				p_TipoCampo = value;
			}
		}
		#endregion
		//'
	}
	
